The present invention relates to a single-chip microcomputer, and more particularly, to multi-functional logic in a buffer memory (a multi-functional logical buffer memory) accommodated therein suitable for input/output control buffer between a processor inside of the chip and a device outside thereof.
Dedicated hardwares such as various timers, a serial communication interface (SCI) for inputting/outputting serial data from/to a device outside of a chip, a direct memory access controller (DMAC) for accessing a memory not through a processor (CPU) but directly are conventionally mounted on the chip to achieve peripheral functions other than those performed by the CPU so that a single-chip microcomputer can attain high speed processing and high level functions. However, since such peripheral functions are performed by the dedicated hardwares, change in types or specifications of the peripheral functions is requested from a user in a case that necessary functions for a user are different from the peripheral functions achieved by the microcomputer, resulting in change in the hardware of the microcomputer.
From this reason, various proposals on architecture of the microcomputer are made. One of such proposals is disclosed in JP-A-01-162971 (corresponding to the U.S. patent application (Ser. No. 07/238,534) filed on Aug. 31, 1988) in which a hardware structure of the microcomputer is made flexible by providing a logic device for its peripheral functions and further the types and specifications of the peripheral functions can be changed relatively freely by providing a subprocessor in addition to the logic device and by changing the program for the subprocessor.
Further, there is already known a multi-functional logic-in-memory in JP-A-61-264453 as a buffer logic-in-memory for data input/output.
In the above conventional techniques, since the peripheral functions of the microcomputer is achieved based on a software, a time lag, i.e., a deviation of an execution time of the software due to emulation of the hardware functions by means of the software is caused during a data input/output operation. No technique for solving this problem is described in the above references.
An input/output interface function necessary for executing such peripheral functions in the single-chip microcomputer is mainly the following five processing functions:
1) a function for processing a plurality of data inputs in accordance with priorities and storing and holding the processing results, PA1 2) a function for latching asynchronous input data not depending on a selecting signal, PA1 3) a function for enabling the stored data to be always outputted regardless of read/write accesses, PA1 4) a read and clear function for automatically resetting a register to a predetermined value, after data held in the register is read out, and PA1 5) a function for making a free access possible in a bit, byte or word unit and making possible a multiple of accesses to a plurality of addresses, which include the same address, at the same time by an arbitrary combination of an accessing size of a bit/byte/word and an accessing mode of a read/write operation regardless of them.
Thus, in the conventional microcomputer the above input/output interface function cannot be performed effectively and a degree of freedom of the interface function is far restricted.